package com.intct.hbase.ddl.namespace;

import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * @author gufg
 * @since 2025-07-10 10:50
 */
public class CreateNamespace extends AbsNamespace {

    private String namespaceName;
    public CreateNamespace(String namespaceName) {
        this.namespaceName =  namespaceName;
    }

    @Override
    public void execCommand(Admin admin) throws IOException {
        // 查询出所有命名空间，并转List列表
        List<String> namespaces = Arrays.asList(admin.listNamespaces());
        // 判断命名空间是否在
        if (!namespaces.contains(namespaceName)) {

            // 创建命名空间描述信息
            NamespaceDescriptor namespaceDescriptor = NamespaceDescriptor.create(namespaceName).build();
            // 创建命名空间
            admin.createNamespace(namespaceDescriptor);
        } else {
            System.out.println("命名空间已经存！");
        }
    }

    public static void main(String[] args) throws IOException {
        new CreateNamespace("intct82_api").start();
    }
}
